@echo off
chcp 65001 >nul
title MySQL远程连接一键配置工具

echo ========================================
echo    MySQL远程连接一键配置工具
echo ========================================
echo.

echo 📋 配置信息:
echo    服务器IP: 192.168.1.11
echo    端口: 3306
echo    用户名: remote_user
echo    密码: remote_password123
echo    数据库: community_service_platform
echo.

echo 🔧 步骤1: 配置防火墙...
netsh advfirewall firewall add rule name="MySQL Remote Access" dir=in action=allow protocol=TCP localport=3306 >nul 2>&1
if %errorlevel% equ 0 (
    echo ✅ 防火墙规则添加成功
) else (
    echo ⚠️  防火墙规则可能已存在或需要管理员权限
)
echo.

echo 🔧 步骤2: 创建MySQL用户...
echo 请确保MySQL服务已启动，然后按任意键继续...
pause >nul

echo 正在连接到MySQL并创建远程用户...
echo 请输入MySQL root密码:
mysql -u root -p -e "
-- 创建远程用户
CREATE USER IF NOT EXISTS 'remote_user'@'%%' IDENTIFIED BY 'remote_password123';

-- 授予数据库权限
GRANT ALL PRIVILEGES ON community_service_platform.* TO 'remote_user'@'%%';

-- 刷新权限
FLUSH PRIVILEGES;

-- 显示用户信息
SELECT User, Host FROM mysql.user WHERE User = 'remote_user';
" 2>nul

if %errorlevel% equ 0 (
    echo ✅ 远程用户创建成功
) else (
    echo ❌ 用户创建失败，请检查MySQL连接
    echo 请手动运行以下SQL命令:
    echo CREATE USER 'remote_user'@'%%' IDENTIFIED BY 'remote_password123';
    echo GRANT ALL PRIVILEGES ON community_service_platform.* TO 'remote_user'@'%%';
    echo FLUSH PRIVILEGES;
)
echo.

echo 🔧 步骤3: 检查MySQL配置文件...
echo 请确保MySQL配置文件(my.ini)中的bind-address设置为0.0.0.0
echo 配置文件位置: D:\phpstudy_pro\Extensions\MySQL8.0.12\my.ini
echo 需要修改: bind-address = 0.0.0.0
echo.

echo 🔧 步骤4: 重启MySQL服务...
echo 请在phpStudy面板中重启MySQL服务
echo.

echo ========================================
echo    配置完成！
echo ========================================
echo.
echo 📱 组员连接信息:
echo    主机: 192.168.1.11
echo    端口: 3306
echo    用户名: remote_user
echo    密码: remote_password123
echo    数据库: community_service_platform
echo.
echo 🔗 连接命令:
echo    mysql -h 192.168.1.11 -P 3306 -u remote_user -p community_service_platform
echo.
echo ⚠️  重要提醒:
echo    1. 请确保MySQL配置文件中的bind-address设置为0.0.0.0
echo    2. 请重启MySQL服务使配置生效
echo    3. 建议修改默认密码以提高安全性
echo.
echo 按任意键退出...
pause >nul
